Contact centres receive contacts in many forms, such as telephone calls, chat session requests, emails, video calls, etc. Such contacts must be processed and this usually means that they are assigned to agents based on the skillsets needed to effectively deal with the contacts. Because agents deal with many contacts throughout the day and the load on the centre varies over time, it is necessary to maintain queues both of contacts which are waiting to be assigned and of agents who are ready for the next suitable contact.
In conventional contact centres, contacts are first routed through a workflow designed to determine the priority of the contact and the skillset(s) required to deal with the contact (indeed the skillset may determine the priority rating assigned to a contact). In the case of voice calls, the call will then be typically held at a private branch exchange (PBX) or a call server, and an identifier for that call will then be passed, along with the results of the workflow routing, to a contact queuing module (or “queue manager”).
The queue manager maintains one or more queues or lists of contact identifiers, and new contacts are inserted into the appropriate queue based on skillset determinations from the workflow, and at the point in the queue determined by the priority assigned to the contact by the workflow process.
Where contact centres are networked together, the ideal distribution of new and waiting contacts is one in which the load is evenly balanced across the individual  nodes (contact centres). One approach is to use a network contact router which is the entry point for all contacts entering the network (i.e. irrespective of which contact centre receives the contact initially, the responsibility for routing the contact is made by the network router. The network contact router receives statistical information from each node and from this information a decision is made as to which node is “most available” based on the activity level of each node. Each new contact is diverted to the currently most available node. A problem with this approach is that it does not deal directly with individual agent availability. A further problem is that the method does not guarantee even distribution particularly when agents are only idle for very short times.
An alternative approach is for the network contact router to directly monitor the activity of each agent, by receiving event reports from each node (an event in this sense might be that a contact has been passed to an agent, or that an agent has logged off for a break, or that an agent has become free. While this provides a more “hands on” approach in which agent availability is dealt with directly, it is very sensitive to failure of the network queue. Should this fail, then the entire queue needs to be rebuilt from scratch when service has been restored. In networked multimedia contact centres, there may be thousands of agents and millions of queued contacts at any given time, so rebuilding the queue takes considerable time and requires considerable resources.
A different approach is one in which each node maintains its own queue and deals with its own received contacts. Only when there is a shortage of resources is a contact transferred to another node with spare capacity. This approach has the disadvantage that contacts are not evenly distributed through the network, and inefficiencies such as over- and under-staffing can occur at different times of the day at individual nodes when in fact the network as a whole might be able to handle the aggregated contacts more efficiently. 